package com.amos.muexamcore.core;

import com.amos.core.BaseDTO;
import com.amos.core.BaseEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Copyright © 2018 五月工作室. All rights reserved.
 *
 * @Package com.amos.muexamcore.core
 * @ClassName BaseDao
 * @Description TODO
 * @Author Amos
 * @Modifier
 * @Date 2020/3/11 22:29
 * @Version 1.0
 **/
public interface BaseMapper<E extends BaseEntity, T extends BaseDTO> {
    /**
     * 加载
     * @param id
     * @return
     */
    E load(@Param("id") String id);

    /**
     * 条件查询
     * @param entity
     * @return
     */
    List<E> list(@Param("record") E entity);

    /**
     * 条件查询
     * @param dto
     * @return
     */
    List<T> select(@Param("record") T dto);

    /**
     * 保存
     * @param entity
     * @return
     */
    int insert( E entity);

    /**
     * 更新记录
     * @param entity
     * @return
     */
    int update(@Param("record") E entity);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(@Param("id") String id);
}
